package leetcode;

/**
 * 动态规划：最大子数组
 */
public class Solution64 {
    public int maxSubArray(int[] nums) {
        //判断nums数组的情况
        if(nums == null || nums.length == 0){
            return 0;
        }
        //定义dp数组
        int result = nums[0];
        int[] dp = new int[nums.length ];
        //进行dp数组的初始化
        dp[0] = nums[0];
        //for循环遍历
        for(int i = 1;i < nums.length;i++){
            dp[i] = Math.max(dp[i-1] + nums[i],nums[i]);
            result = result > dp[i] ? result : dp[i];
        }
        return result;
    }
}
